The present disclosure relates to methods and systems for controlling processing. In particular, the present disclosure relates to methods for controlling processing of commands at a graphics processor, such as processing of graphics rendering commands, and graphics processing systems.
In computer processing systems, such as 3D graphics processing systems, an input data stream is processed at a processor. Typically, a driver at a host processor such as a central processing unit (CPU) will process the input data stream, and will output at least one command configured to cause a graphics processing unit (GPU) to perform an operation such as rendering an image. In some cases, commands may cause the GPU to operate on data stored in a local memory, such as an on-chip memory. A command may also cause the locally-stored data to be written to external memory by the GPU, for later use. The execution of this write to external memory has an associated cost in terms of power consumption and memory bandwidth in performing the write operation. A read operation, also with a similar associated cost, can cause data stored in the external memory to be accessed.
At the application level, the provision of API functions, such as gIInvalidateFrameBuffer( ), which signal that a memory's contents will not be used again, can be used to explicitly manage the usage of memory. Such API functions can be used by application developers. In practice, however, most applications do not do this.